<html>
<head><meta charset="utf-8"><title>Questions from someone who has just discovered Rust. · new members · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/index.html">new members</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Questions.20from.20someone.20who.20has.20just.20discovered.20Rust.2E.html">Questions from someone who has just discovered Rust.</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="227131018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Questions%20from%20someone%20who%20has%20just%20discovered%20Rust./near/227131018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Giuseppe Palmeri <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Questions.20from.20someone.20who.20has.20just.20discovered.20Rust.2E.html#227131018">(Feb 21 2021 at 00:54)</a>:</h4>
<p>Hi, I'm Giuseppe Palmeri, an Italian programmer. During this time I took a look at the RUST language (among the many that use LLVM) and I discovered some key features in the philosophy of the language that I really liked.</p>
<p>I liked them a lot for 2 reasons:<br>
The first is that these characteristics solve practical problems and the second is that once these practical problems and the doubts that arise about them are removed, you can see beyond with a wider range of action and you can see solutions for problems that before were more laboriously practicable (Eureka!).</p>
<p>These features are:</p>
<ol>
<li>Allocation and Release of memory implicitly and at the expense of the compiler;</li>
<li>The ability to prevent concurrency on the writing of the same portion of memory by different threads (it is simply decided that this scenario cannot be possible);</li>
<li>The concept that interfaces (in an Object Oriented context) do not necessarily have to be abstractions of the language, but also exist concretely to represent an abstraction at the application level.</li>
</ol>
<p>I have not gone into specific detail yet on other issues of the language, I have never used it again, but already from these 3 characteristics (without necessarily going into the merits of how they have been implemented) it seems that particularly interesting scenarios open up (in my opinion obviously ).</p>
<p>One of these is the possibility of basing an entire Operating System on at least these 3 basic concepts of RUST. In practice, having an operating system entirely modeled on the same principles.</p>
<p>Personally, I believe that every operating system can benefit greatly if developed in close relation to the language with which it was created.</p>
<p>Just as I believe that the character of the operating system can only be expressed through the adoption of its own compilation language.</p>
<p>Each framework (and an operating system can be seen as a framework referring to the kernel), at any level, can correspond to a programming language that models its decisions and the possibilities of use.</p>
<p>Wanting to design a new operating system, one of the things that come to my mind and that I might need is the adoption of a proprietary format of executable code.</p>
<p>A proprietary, or simply alternative, way of formatting executable code.</p>
<p>I am not referring to an alternative file format for identifying an executable as an ELF, but rather what it might contain within it.</p>
<p>Generally the format of the executable code is defined by standards, as well as the way in which it is loaded and executed in memory.</p>
<p>This depends both on the architecture on which the operating system is running, on how the operating system itself was designed and on how compatible it is to be with other operating systems.</p>
<p>At this point I can think of some questions to ask that I think it is right to ask and that concern the evolution of RUST and of LLVM more generally.</p>
<p>The questions are:</p>
<ol>
<li>Does RUST provide a modeling system for the code it generates?<br>
    Does it allow to define a proprietary ABI for library code?<br>
    Or are these tasks exclusive to LLVM?<br>
    To achieve this, is it possible that both LLVM and RUST need to be changed?</li>
</ol>
<p>An example that implies an intervention on this aspect could be that of giving the possibility or not to the code to be able to be executed as an instance of a class that implements a remote interface (which also exists on another computer in the same network).<br>
Think of a parallel computing distributed over a network.</p>
<p>This does not mean that new ABI standards or different DLL or Shared Objects (.so) formats could be born.</p>
<ol start="2">
<li>Does RUST foresee a system for the development of compilable dialects of its own language in order to be able to deal with more specific and dedicated problems?</li>
</ol>
<p>For example, there could be a compiler dialect that derives from RUST which deals with the modeling of peripheral drivers only.</p>
<p>In addition to these questions, I would like to know if an Italian translation of his book is planned for RUST: <a href="https://doc.rust-lang.org/stable/book/">https://doc.rust-lang.org/stable/book/</a>.</p>
<p>Also, I would like to know if there is a list of desirable libraries for RUST that have not already been implemented.<br>
There are libraries to handle XML, JSON, FTP or HTTP.<br>
What other libraries do we feel the need for?</p>
<p>Thanks to those who want to answer my questions.<br>
I also apologize for my English if it doesn't sound perfect to you.</p>



<a name="227151690"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Questions%20from%20someone%20who%20has%20just%20discovered%20Rust./near/227151690" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Questions.20from.20someone.20who.20has.20just.20discovered.20Rust.2E.html#227151690">(Feb 21 2021 at 08:06)</a>:</h4>
<p>Hello! I'm not really the one to answer this, but Rust doesn't have a stable ABI (yet?). It has its own ABI, but it's not stable across different compiler versions, so that the developers have the option to improve it over time. This is requested quite often, in various contexts, but it's pretty hard to say "we stop here and never touch it again".</p>



<a name="227151772"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Questions%20from%20someone%20who%20has%20just%20discovered%20Rust./near/227151772" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Questions.20from.20someone.20who.20has.20just.20discovered.20Rust.2E.html#227151772">(Feb 21 2021 at 08:08)</a>:</h4>
<p>Of course, there are a couple of operating systems written in Rust, one of the most popular -- and relatively usable as a desktop OS -- being <a href="https://www.redox-os.org/">https://www.redox-os.org/</a>, but I haven't looked into them or whether they do something fundamentally different from other operating systems. My gut feeling is that the help you get from the compiler is really nice, but there's plenty of difficult problems to solve outside the language.</p>



<a name="227151910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Questions%20from%20someone%20who%20has%20just%20discovered%20Rust./near/227151910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Questions.20from.20someone.20who.20has.20just.20discovered.20Rust.2E.html#227151910">(Feb 21 2021 at 08:11)</a>:</h4>
<p>I think there's also some interest in writing different front-ends for the Rust, and in stabilizing the internal representation so that static analysis tools can understand it better, e.g. <a href="https://github.com/rust-lang/lang-team/files/5997688/lang-team-proposal-trust-levels-1613584473422.pdf">https://github.com/rust-lang/lang-team/files/5997688/lang-team-proposal-trust-levels-1613584473422.pdf</a> and probably other work in the Sealed Rust initiative.</p>



<a name="227152040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Questions%20from%20someone%20who%20has%20just%20discovered%20Rust./near/227152040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Questions.20from.20someone.20who.20has.20just.20discovered.20Rust.2E.html#227152040">(Feb 21 2021 at 08:13)</a>:</h4>
<p>As for missing crates, there's a list at <a href="https://github.com/not-yet-awesome-rust/not-yet-awesome-rust">https://github.com/not-yet-awesome-rust/not-yet-awesome-rust</a>, another at <a href="https://github.com/dtolnay/request-for-implementation">https://github.com/dtolnay/request-for-implementation</a>, and maybe others too. GUIs, Web frameworks and ML get mentioned pretty often.</p>



<a name="227192786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Questions%20from%20someone%20who%20has%20just%20discovered%20Rust./near/227192786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Giuseppe Palmeri <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Questions.20from.20someone.20who.20has.20just.20discovered.20Rust.2E.html#227192786">(Feb 21 2021 at 20:43)</a>:</h4>
<p>Hi Nicola, thanks for answering me! <span aria-label="smiling face" class="emoji emoji-263a" role="img" title="smiling face">:smiling_face:</span> <span aria-label="smiling face" class="emoji emoji-263a" role="img" title="smiling face">:smiling_face:</span><br>
I understand the difficulties and certainly before we can establish every aspect of the compiler there must be a certain maturity.<br>
Thanks for everything.<br>
I also took a look at Redox OS.<br>
It is very interesting and compatible as much as possible with linux.<br>
Although in my opinion (personal opinion), it should strongly ignore the standards <br>
(use them as a guideline anyway) and come up with proprietary solutions that conform to the language. <br>
These are the standards that must be rewritten, <br>
improved or forked at this point if they do not fit the new approach.<br>
I took a look at the missing creates and saw that DDS is missing. I saw the description of RustDDS of who is working on it (<a href="https://crates.io/crates/rustdds">https://crates.io/crates/rustdds</a>).<br>
In this case it seems difficult to strictly follow the specifications.</p>
<p>But at this point a re-design of the dds specifications could also follow. <br>
Even the creation of an alternative proprietary design to DDS could be at least as useful <br>
as being compatible with the existing as much as possible since it is impossible to be.</p>
<p>Redox OS (or similar os) could natively implement DDS-like middleware functionality natively and the RUST compiler should have DDS-like functionality in its toolchain and language.</p>
<p>A language like Rust should have its own operating system (or family of operating systems).<br>
I can't see a language evolution without a dedicated operating system. <br>
In my opinion this is not bad but something to be leveraged on.<br>
Thanks again!</p>



<a name="227324178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Questions%20from%20someone%20who%20has%20just%20discovered%20Rust./near/227324178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Questions.20from.20someone.20who.20has.20just.20discovered.20Rust.2E.html#227324178">(Feb 22 2021 at 19:34)</a>:</h4>
<p>more OS projects are list here: <a href="https://wiki.osdev.org/Rust#Active_Projects">https://wiki.osdev.org/Rust#Active_Projects</a></p>



<a name="227535790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Questions%20from%20someone%20who%20has%20just%20discovered%20Rust./near/227535790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Giuseppe Palmeri <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Questions.20from.20someone.20who.20has.20just.20discovered.20Rust.2E.html#227535790">(Feb 24 2021 at 01:50)</a>:</h4>
<p>Thanks Oliver!<br>
I went through the list well.<br>
They are all interesting and most have been created for educational purposes.<br>
Looking again I also found this project:<br>
<a href="https://gitlab.com/robigalia">https://gitlab.com/robigalia</a><br>
It sounds very interesting, especially for creating something around seL4. <br>
I do not understand, however, why this project seems to be abandoned or practically no longer active, because as a project it seems to be very appropriate.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>